下面程序中为什么要a<2 ?

来源:百度知道 编辑:UC知道 时间:2024/06/08 03:06:59
某人编写如下函数来判断a是否为素数,若是,则函数返回True;否则返回False
Function Prime(a As Integer)AS Boolean
Dim k As Interger,isprime AS Boolean
If a<2 Then
isprime=False
Else
isprime=True
k=2
Do While k If a Mod k=0 Then
isprime=False
ELSE
k=k+1
End IF
LOOP
End If
prime=isprime
End Function
在测试时发现有1个非素数也被判断为素数,这个错判的数是 4

对于1判断为素数,这是程序设计上的缺陷。在声明变量的时候,isprime是bool值,只能表示真和假,1刚好是另外的一种。所以在定义isprime时,可定义为int,isprime=1时表示不是素数,也不是合数;为2时表示为素数,3表示为非素数。这样就可以取消程序设计上的缺陷。
对于a<2这个判断,表示只能判断正整数,还是程序设计上的问题。

对于1判断为素数,这是程序设计上的缺陷。在声明变量的时候,isprime是bool值,只能表示真和假,1刚好是另外的一种。所以在定义isprime时,可定义为int,isprime=1时表示不是素数,也不是合数;为2时表示为素数,3表示为非素数。这样就可以取消程序设计上的缺陷。
对于a<2这个判断,表示只能判断正整数,还是程序设计上的问题。
回答者:alberte_peng - 经理 四级 6-11 16:34